#include "mqueue.h"
#include <stdio.h>

int main(int argc, char const *argv[])
{
    // 设置队列属性
    struct mq_attr attr;
    attr.mq_msgsize = 128; // 消息的最大长度
    attr.mq_maxmsg = 20;   // 消息队列的最大消息数
    // 创建一个消息队列,在linux中消息队列以文件的形式存在,mq_test就是文件名,mq是他的句柄
    mqd_t mq = mq_open("/mq_test", O_RDWR | O_CREAT, 0666, &attr); // 0666表示权限

    // 向队列中写入数据
    mq_send(mq, "hello world", 11, 0);

    // 从队列中读取数据
    char buf[128];
    int buf_len = mq_receive(mq, buf, 128, NULL); // 128表示读取数据的最大长度,buf_len表示读取到的数据的实际长度 ,NULL表示不关心消息的优先级
    printf("read data: %.*s\n", buf_len, buf);
    // 关闭消息队列
    mq_close(mq);
    // 删除消息队列(把文件删了)
    mq_unlink("/mq_test");
    return 0;
}
